/* Botón siguiente después de la tabla de resultados (obsoleto)*/
document.addEventListener('DOMContentLoaded', function () {
const pagination = document.querySelector('.user-dashboard-pagination');
const list = document.querySelector('.widefat.user-dashboard-list');
if (pagination && list) {
// Mueve el div de paginación después del div de la lista
list.parentNode.insertBefore(pagination, list.nextSibling);
}
});
/* Fecha en títulos de lecciones */
document.addEventListener("DOMContentLoaded", () => {
// Selecciona todos los elementos con la clase `ld-lesson-title`
document.querySelectorAll('.ld-lesson-title').forEach(element => {
// Obtiene el texto original del elemento
const originalText = element.textContent.trim();
// Divide el texto en dos partes usando el delimitador `#%`
const [title, date] = originalText.split('->');
// Modifica el contenido del div para incluir las partes separadas
element.innerHTML = `
${title.trim()}
Fecha: ${date.trim()}
`;
});
});
/* Tabla de Resultados de simulacros */
document.addEventListener("DOMContentLoaded", function () {
if (document.body.classList.contains('page-id-6049')) {
const table = document.querySelector("table.widefat.user-dashboard-list");
if (table) {
// Aplicar el filtro antes de mostrar la tabla
const rows = table.querySelectorAll("tbody tr");
rows.forEach((row) => {
const evaluationNameCell = row.querySelector("td:nth-child(2)");
const evaluationName = evaluationNameCell?.innerText.trim().toLowerCase() || "";
if (!evaluationName.includes("simulacro")) {
row.style.display = "none"; // Oculta las filas que no cumplen
}
});
// Mostrar la tabla con fade-in después del filtrado
table.style.visibility = "visible"; // Hace que la tabla vuelva a ocupar espacio
table.style.opacity = "1"; // Aplica la animación de opacidad
}
}
});
/* Clases al lado del menú móvil */
document.addEventListener("DOMContentLoaded", function () {
const mobileNav = document.querySelector(".ld-mobile-nav");
if (mobileNav) {
// Crear el texto flotante
const tooltip = document.createElement("div");
tooltip.className = "ld-mobile-nav-tooltip";
tooltip.textContent = "Clases";
// Agregar el texto flotante al botón del menú
mobileNav.style.position = "relative"; // Asegurar que el contenedor sea relativo
mobileNav.appendChild(tooltip);
}
});
/* Mostrar sólo primer nombre en comentarios */
document.addEventListener("DOMContentLoaded", function () {
document.querySelectorAll(".ld-comment-author-name").forEach(function (element) {
let fullName = element.textContent.trim();
let firstName = fullName.split(" ")[0]; // Obtiene solo el primer nombre
element.textContent = firstName;
});
});
/* Colores según tema en el calendario */
function actualizarColoresEventos() {
const eventos = document.querySelectorAll(".fc-daygrid-event");
eventos.forEach(evento => {
const titulo = evento.querySelector(".fc-event-title");
if (titulo) {
titulo.classList.remove("evento-simulacro", "evento-salud-publica");
if (titulo.textContent.toLowerCase().includes("simulacro")) {
evento.style.backgroundColor = "#ffdfec";
titulo.classList.add("evento-simulacro");
} else if (titulo.textContent.toLowerCase().includes("salud pública")) {
evento.style.backgroundColor = "#e8eaff";
titulo.classList.add("evento-salud-publica");
} else if (titulo.textContent.toLowerCase().includes("cuidado integral")) {
evento.style.backgroundColor = "#f8f7fd";
titulo.classList.add("evento-cuidado-integral");
} else if (titulo.textContent.toLowerCase().includes("ética")) {
evento.style.backgroundColor = "#0dba9c15";
titulo.classList.add("evento-etica");
} else if (titulo.textContent.toLowerCase().includes("investigación")) {
evento.style.backgroundColor = "#ff832315";
titulo.classList.add("evento-investigacion");
} else if (titulo.textContent.toLowerCase().includes("gestión")) {
evento.style.backgroundColor = "#ad3eff15";
titulo.classList.add("evento-gestion");
} else if (titulo.textContent.toLowerCase().includes("introductoria")) {
evento.style.backgroundColor = "#f8f7fd";
titulo.classList.add("evento-introductoria");
} else if (titulo.textContent.toLowerCase().includes("resumen")) {
evento.style.backgroundColor = "#FFFEE6";
titulo.classList.add("evento-resumen");
} else if (titulo.textContent.toLowerCase().includes("receso")) {
evento.style.backgroundColor = "#EBFFF3";
titulo.classList.add("evento-receso");
} else {
evento.style.backgroundColor = "#e8eaff";
}
}
});
}
const observer = new MutationObserver((mutationsList, observer) => {
// Verifica si se añadieron nodos al calendario
for (const mutation of mutationsList) {
if (mutation.addedNodes.length) {
actualizarColoresEventos();
}
}
});
// Observar el contenedor principal del calendario
const esperarCalendario = setInterval(() => {
const contenedorCalendario = document.querySelector(".fc-view-harness");
if (contenedorCalendario) {
observer.observe(contenedorCalendario, {
childList: true,
subtree: true
});
actualizarColoresEventos(); // también ejecutamos al inicio
clearInterval(esperarCalendario);
}
}, 300);
/* Número de pregunta del total, Posttests */
function updateAllPageCounts() {
document.querySelectorAll(".pages_count").forEach((counter) => {
if (counter.innerText.includes("out of")) {
counter.innerText = counter.innerText.replace(" out of ", "/");
}
});
}
document.addEventListener("DOMContentLoaded", function () {
// Ejecutar una vez al inicio
updateAllPageCounts();
// Observar todo el body por si se cargan quizzes dinámicamente
const observer = new MutationObserver(() => {
updateAllPageCounts();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
});
/* Número de pregunta del total, Flashcards */
document.addEventListener("DOMContentLoaded", function () {
const cardsText = document.querySelector(".cards-panel"); // o usa un selector más específico si es necesario
if (cardsText) {
cardsText.innerHTML = cardsText.innerHTML.replace("Card", "");
}
});
document.addEventListener("DOMContentLoaded", function () {
const cardsText = document.querySelector(".cards-panel"); // o usa un selector más específico si es necesario
if (cardsText) {
cardsText.innerHTML = cardsText.innerHTML.replace(" of ", "/");
}
});
/* Numerar las preguntas de los examenes */
(function () {
// Función que numera las preguntas
function renumerarPreguntas() {
const questionSections = document.querySelectorAll(".qsm_questions_answers_section");
questionSections.forEach((section) => {
const questionNumbers = section.querySelectorAll(".mlw_qmn_question_number");
questionNumbers.forEach((el, index) => {
el.textContent = (index + 1) + ". ";
});
});
}
// Observador que detecta nuevos contenidos dinámicos
const globalObserver = new MutationObserver((mutationsList) => {
for (let mutation of mutationsList) {
if (mutation.type === "childList") {
// Verifica si se añadió una sección de preguntas
const addedNodes = Array.from(mutation.addedNodes);
for (let node of addedNodes) {
if (
node.nodeType === 1 && // ELEMENT_NODE
node.classList.contains("qsm_questions_answers_section") ||
(node.querySelector && node.querySelector(".qsm_questions_answers_section"))
) {
renumerarPreguntas();
}
}
}
}
});
// Esperar a que el DOM esté listo
document.addEventListener("DOMContentLoaded", function () {
globalObserver.observe(document.body, {
childList: true,
subtree: true,
});
// Ejecutar también al inicio por si ya está cargado
renumerarPreguntas();
});
})();
/* Abrir último elemento de Manuales*/
document.addEventListener("DOMContentLoaded", function () {
setTimeout(function () {
const detailsList = document.querySelectorAll('.e-n-accordion-item');
if (detailsList.length > 0) {
// Cierra todos
detailsList.forEach(details => details.removeAttribute("open"));
// Simula clic en el último para abrirlo correctamente
const lastDetails = detailsList[detailsList.length - 1];
const summary = lastDetails.querySelector('summary');
if (summary) {
summary.click(); // Usa el método oficial del plugin
}
}
}, 800); // Ajusta si Elementor tarda más
});
/* Mostrar puntaje */
document.addEventListener("DOMContentLoaded", function() {
function actualizarPuntajes() {
const celdas = document.querySelectorAll("td.post-title.column-title span");
celdas.forEach(function(celda) {
const texto = celda.innerText;
const match = texto.match(/(\d+(\.\d+)?)\sPoints/);
if (match) {
const numero = parseFloat(match[1]);
const redondeado = numero.toFixed(2); // Redondea a 2 decimales
celda.innerText = redondeado;
}
});
}
setTimeout(actualizarPuntajes, 90);
setTimeout(actualizarPuntajes, 1500);
});
/* Ordenar tabla de Resultados de POST-TESTS */
document.addEventListener("DOMContentLoaded", function () {
console.log("DOM listo. Ejecutando observer...");
const observer = new MutationObserver(() => {
const table = document.querySelector("table.widefat.user-dashboard-list");
if (!table) return;
const tbody = table.querySelector("tbody");
if (!tbody) return;
const testCell = tbody.querySelector("tr td:nth-child(2)");
if (!testCell) return;
const text = testCell.innerText.trim();
if (!text) return;
// ¡La tabla ya está cargada con datos!
observer.disconnect();
//console.log("Tabla detectada. Ejecutando ordenamiento...");
ordenarTabla();
});
observer.observe(document.body, { childList: true, subtree: true });
function ordenarTabla() {
const table = document.querySelector("table.widefat.user-dashboard-list");
if (!table) {
//console.log("No se encontró la tabla");
return;
}
const tbody = table.querySelector("tbody");
if (!tbody) {
//console.log("No se encontró tbody");
return;
}
const allRows = Array.from(tbody.querySelectorAll("tr"));
//console.log("Cantidad de filas:", allRows.length);
let pairs = [];
for (let i = 0; i < allRows.length; i += 2) {
const row1 = allRows[i];
const row2 = allRows[i + 1];
let text = "";
if (row1) {
const td2 = row1.querySelector("td:nth-child(2)");
if (td2) {
text = td2.innerText.trim().toLowerCase();
}
}
pairs.push({
text,
rows: [row1, row2].filter(Boolean),
});
}
//console.log("Pares antes de ordenar:", pairs.map(p => p.text));
pairs.sort((a, b) => a.text.localeCompare(b.text));
//console.log("Pares después de ordenar:", pairs.map(p => p.text));
tbody.innerHTML = "";
pairs.forEach(pair => {
pair.rows.forEach(row => {
tbody.appendChild(row);
});
});
//console.log("Tabla reordenada.");
}
});